import { createApp } from 'vue';

import {
  DatePicker,
  Picker, OverLay ,
  Radio,
  RadioGroup,
  Button,
  Toast,
  Avatar,
  Icon,
  Tabs,
  TabPane,
  Swiper,
  SwiperItem,
  SearchBar,
  Sticky,
  Menu,
  MenuItem,
  Category,
  CategoryPane,
  Card,
  Tag,
  Row,
  Col,
  Animate,
  Price,
  FixedNav,
  Popup,
  Grid,
  GridItem,
  InfiniteLoading,
  Navbar,
  CountDown,
  TabbarItem,
  Tabbar,
  Divider,
  Cell,
  Address,
  AddressList,
  CellGroup,
  Checkbox,
  CheckboxGroup,
  Input,
  InputNumber,
  TextArea,
  Switch,
  Elevator,
  Swipe,
  Comment,
  Dialog,
  ImagePreview,
  Rate,
  Empty,
  Skeleton,
} from '@nutui/nutui-taro';

import '@nutui/nutui-taro/dist/style.css';
import './assets/iconfont/iconfont.css';
import './app.less';
import Taro, { useDidShow ,} from '@tarojs/taro';
import { RichText } from '@tarojs/components';
import { backOrToHome, toHome } from '@/utils/router';
import {loginapi ,userLogin,getuserinfo} from '@/api/moredetail';

Taro.offPageNotFound(() => {
  Taro.showModal({
    title: '页面找不到',
    content: '404 NotFund',
    confirmText: '首页',
    cancelText: '返回',
    success: (result) => {
      if (result.confirm) {
        toHome();
      } else {
        backOrToHome();
      }
    },
  });
});
useDidShow(() => {
  console.log('useDidShow');
});
// 注册路由中间件
const App = createApp({
  onShow(options) {
    // 入口组件不需要实现 render 方法，即使实现了也会被 taro 所覆盖
    const updateManager = Taro.getUpdateManager();
    updateManager.onCheckForUpdate((res) => {
      console.log('是否有更新', res.hasUpdate); // 请求完新版本信息的回调 true说明有更新
    });
  //  Taro.reLaunch({
  //   url: '/pages/tabbar/user/index'
  //  })
    Taro.login().then((res:any) =>{
      let  {code,anonymousCode} = res
      userLogin({code:code}).then((respon:any) =>{
        let access_token = Taro.setStorageSync('access_token',respon.access_token);
        getuserinfo().then((respon:any) =>{
          respon.user_id = respon?.id
          const useInfo = Taro.setStorageSync('useInfo',JSON.stringify(respon));
        })
        // /recruit/user/information
      })
    })
    // let access_token = Taro.getStorageSync('access_token');
    // Taro.showDouyinOpenAuth()
    // getcode({
    //   // 移动/网站应用的唯一标识。
    //   client_key:"tt64891234fbb8dfca01",
    //   client_secret:"00813061fd8a85264425d50624ab5aa12d8218f5",
    //   response_type:"code",
    //   grant_type:"authorization_code",
    //   // optionalScope:'friend_relation,1,message,0',
    //   // // 移动/网站应用唯一标识对应的密钥。
    //   // // client_secret（Client Secret）
    //   // // 移动/网站应用唯一标识对应的密钥。
    //   // code:"user_info,friend_relation",
    //   // 临时调用凭证，在用户完成授权后生成，用于获取 access_token。
    //   // 用户授权的作用域。开放平台几乎每个接口都需要特定的 Scope。
    //   }).then(res =>{
    //     console.log(res)
    //     // userLogin({code:res}).then(res =>{
    //     //       console.log(res)
    //     //     })
    //   })
    
    updateManager.onUpdateReady(() => {
      Taro.showModal({
        title: '更新检测', // 此处可自定义提示标题
        content: '检测到新版本，是否重启小程序？', // 此处可自定义提示消息内容
        success(res) {
          if (res.confirm) {
            // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate();
          }
        },
      });
    });
    updateManager.onUpdateFailed(() => {
      // 新的版本下载失败
      Taro.showModal({
        title: '更新提示',
        content: '新版本下载失败',
        showCancel: false,
      });
    });
  },
});

App.use(Button)
  .use(Toast)
  .use(Avatar)
  .use(Icon)
  .use(Tabs)
  .use(TabPane)
  .use(Swiper)
  .use(SwiperItem)
  .use(SearchBar)
  .use(Category)
  .use(Sticky)
  .use(Menu)
  .use(MenuItem)
  .use(Card)
  .use(Tag)
  .use(Grid)
  .use(GridItem)
  .use(Row)
  .use(Col)
  .use(Price)
  .use(Popup)
  .use(Animate)
  .use(FixedNav)
  .use(Navbar)
  .use(CountDown)
  .use(Tabbar)
  .use(TabbarItem)
  .use(Cell)
  .use(CellGroup)
  .use(Divider)
  .use(Checkbox)
  .use(Address)
  .use(AddressList)
  .use(CheckboxGroup)
  .use(InfiniteLoading)
  .use(Input)
  .use(TextArea)
  .use(InputNumber)
  .use(Switch)
  .use(Elevator)
  .use(Swipe)
  .use(Comment)
  .use(Rate)
  .use(ImagePreview)
  .use(Dialog)
  .use(Skeleton)
  .use(Empty)
  .use(RichText)
  .use(Animate)
  .use(Radio)
  .use(RadioGroup)
  .use(Picker)
  .use(OverLay)
  .use(DatePicker)
  .use(CategoryPane);
export default App;
